package com.qire.manhua.dal;

import com.qire.antsbinder.dal.annotation.DataAccess;
import com.qire.antsbinder.dal.annotation.ParamsAlias;
import com.qire.common.constant.Url;
import com.qire.manhua.dal.converter.BooleanToIntConverter;
import com.qire.manhua.model.vo.MessagePushStateVO;
import com.qire.manhua.model.vo.MessageReadVO;
import com.qire.manhua.model.vo.OkResponseVO;

/**
 * 消息数据
 */
public interface IMessageDataDAL {

    /**
     * 通过消息ID标记消息已读
     * @param messageId 消息ID
     * @return
     */
    @DataAccess(url = Url.MessageReadOnSingle)
    MessageReadVO readMessageByID(@ParamsAlias(name = "message_id") int messageId);

    /**
     * 标记所有消息已读
     * @return
     */
    @DataAccess(url = Url.MessageReadOnAll)
    MessageReadVO readMessageOnAll();

    /**
     * 通过类型标记所有消息已读
     * @param messageType 类型： 2-评论；5-点赞
     * @return
     */
    @DataAccess(url = Url.MessageReadOnType)
    MessageReadVO readMessageOnType(@ParamsAlias(name = "msg_type") int messageType);

    /**
     * 获取消息推送状态
     * @return
     */
    @DataAccess(url = Url.PushStateInfo)
    MessagePushStateVO fetchPushStateInfo();

    /**
     * 切换推送消息状态
     * @param enableMessagePush     消息开关：0-关闭(false)，1-开启(true)
     * @param enableComicUpdatePush 漫画更新：0-关闭(false)，1-开启(true)
     * @param enableRecommendPush   小编推荐：0-关闭(false)，1-开启(true)
     * @param enableCommentPush     评论信息：0-关闭(false)，1-开启(true)
     * @return
     */
    @DataAccess(url = Url.PushStateToggle)
    OkResponseVO togglePushStateInfo(@ParamsAlias(name = "s_main", converter = BooleanToIntConverter.class) boolean enableMessagePush,
                                     @ParamsAlias(name = "s_comic_update", converter = BooleanToIntConverter.class) boolean enableComicUpdatePush,
                                     @ParamsAlias(name = "s_xb_recomm", converter = BooleanToIntConverter.class) boolean enableRecommendPush,
                                     @ParamsAlias(name = "s_discuss", converter = BooleanToIntConverter.class) boolean enableCommentPush);

}
